001    /*
002     * Created by IntelliJ IDEA.
003     * User: Wei Wang
004     * Date: 2002-8-29
005     * Time: 13:31:24
006     * To change template for new class use 
007     * Code Style | Class Templates options (Tools | IDE Options).
008     */
009    package EVolve.util.predefinedutils;
010    
011    import EVolve.*;
012    import EVolve.exceptions.EVolveException;
013    import EVolve.util.predefinedutils.PredefinedVisualization;
014    import EVolve.visualization.*;
015    import EVolve.visualization.VizFactory.VisualizationFactory;
016    
017    import java.util.ArrayList;
018    import java.util.HashMap;
019    
020    public class PredefinedVisualizationRunner {
021        private ArrayList predefinedVizCollection;
022        private int selected;
023    
024        public PredefinedVisualizationRunner() {
025            predefinedVizCollection = new ArrayList();
026            selected = 0;
027        }
028    
029        public int getSelected() {
030            return this.selected;
031        }
032    
033        public void setSelected(int selected) {
034            this.selected = selected;
035        }
036    
037        public int getPredefinedVisualizationNumber() {
038            return predefinedVizCollection.size();
039        }
040    
041        public String getConfigureName(int index) {
042            return ((PredefinedVisualization)predefinedVizCollection.get(index)).getName();
043        }
044    
045        public PredefinedVisualization getSelectedPredefinedViz() {
046            return predefinedVizCollection.size() == 0 ? null : (PredefinedVisualization)predefinedVizCollection.get(selected);
047        }
048    
049        public PredefinedVisualization getPredefinedVizByIndex(int index) {
050            return (PredefinedVisualization)predefinedVizCollection.get(index);
051        }
052    
053        public void addPredefinedVisualization(String filename, String configname) {
054            for (int i=0; i<predefinedVizCollection.size(); i++) {
055                PredefinedVisualization viz = (PredefinedVisualization)predefinedVizCollection.get(i);
056                if (viz.getFilename().equals(filename)) {
057                    viz.setTranslated(false);
058                    viz.setFilename(filename);
059                    viz.setName(configname);
060                    return;
061                }
062            }
063            PredefinedVisualization viz = new PredefinedVisualization(filename,configname);
064            predefinedVizCollection.add(predefinedVizCollection.size(),viz);
065        }
066    
067        public boolean containsConfigure(String name) {
068    
069            for (int i=0; i< predefinedVizCollection.size(); i++) {
070                if (((PredefinedVisualization)predefinedVizCollection.get(i)).getName().equals(name)) return true;
071            }
072    
073            return false;
074        }
075    
076        public int getIdFromName(String name) {
077            int retValue = -1;
078            for (int i=0; i< predefinedVizCollection.size(); i++) {
079                if (((PredefinedVisualization)predefinedVizCollection.get(i)).getName().equals(name)) retValue = i;
080            }
081    
082            return retValue;
083        }
084    
085        public void runPredefinedVisualization() {
086            Visualization visual = null;
087            PredefinedVisualization predefinedViz = getSelectedPredefinedViz();
088    
089            if (predefinedViz == null) return;
090            try {
091                if (!predefinedViz.isTranslated())
092                    predefinedViz.translateVizInfo();
093    
094            } catch (EVolveException e) {
095                Scene.showErrorMessage(e.getMessage());
096                return;
097            }
098    
099            Scene.getVisualizationManager().cleanup();
100            while (predefinedViz.hasNext()) {
101                VizInfo viz = predefinedViz.getNextVizInfo();
102                HashMap mapConfig = new HashMap();
103                mapConfig.put("Factory",viz.getFactory());
104                mapConfig.put("Subject",viz.getSubject());
105                mapConfig.put("Dimension",viz.getDimension());
106                mapConfig.put("Predictor",viz.getPredictor());
107                mapConfig.put("Interval",new Integer(viz.getInterval()));
108                mapConfig.put("BeginCall",new Long(viz.getBeginCall()));
109                mapConfig.put("EndCall",new Long(viz.getEndCall()));
110                mapConfig.put("Match",new Float(viz.getMatch()));
111                mapConfig.put("Options", viz.getOptions());
112    
113                visual = Scene.getVisualizationManager().newVisualization(((VisualizationFactory)mapConfig.get("Factory")).getName());
114    
115                visual.getWindow().setBounds(viz.getWindowPosition());
116                visual.setName(viz.getTitle());
117                visual.autoUpdateConfiguration(mapConfig);
118            }
119            Scene.getVisualizationManager().addAllVisualizations();
120            Scene.getFilter().updateSelection();
121            Scene.getVisualizationManager().prepareListToBeVisualized();
122            Scene.visualize();
123            predefinedViz.reset();
124        }
125    }